Flash is a non-volatile memory that can retain the data stored therein even after power is removed. NAND (Not AND) flash, which is one type of Flash, is a high-density memory design and has certain advantages over other types of memory. In particular, NAND flash has large storage capacity, e.g. one Giga bits or more, good continuous access speed for flash memory, and low cost.
The error correction code (ECC) is a common function in NAND flash memory controller for the advanced process of flash memory. The NAND flash memory with multi-level cell (MLC) has a benefit of low cost and is widely utilized in the solid state drive (SSD). However, NAND flash also has certain inherent drawbacks, such as poor read endurance. Because the error correction code (ECC) capability for the NAND flash memory is restricted, the poor read endurance of the NAND flash memory with multi-level cell (MLC) is too low to provide better reliability for the application of solid state drive (SSD). Consequentially, there is a need to develop a novel flash memory to solve the aforementioned problem.